package com.smile.model.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@ToString
@TableName("feisuan_drone")
public class FeisuanDrone implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("drone_name")
    private String droneName;

    @TableField("drone_brand")
    private String droneBrand;

    @TableField("drone_model")
    private String droneModel;

    @TableField("drone_sn")
    private String droneSn;

    @TableField("image_url")
    private String imageUrl;

    @TableField("total_task_time")
    private Long totalTaskTime;

    @TableField("task_count")
    private Long taskCount;

    @TableField("total_task_distance")
    private Long totalTaskDistance;

    @TableField("user_id")
    private Long userId;

    /**
     * 1. 作业中 2. 待命 3. 离线
     */
    @TableField("status")
    private Integer status;

    @TableField("create_time")
    private LocalDateTime createTime;

    @TableField("modify_time")
    private LocalDateTime modifyTime;

    @TableField("delete_status")
    private Boolean deleteStatus;

    @TableField("organization_id")
    private Long organizationId;

    @TableField("media_upload_time")
    private LocalDateTime mediaUploadTime;

    @TableField("device_model_key")
    private String deviceModelKey;

    @TableField("drone_video_address")
    private String DroneVideoAddress;

    @TableField("drone_video_address")
    private String droneVideoAddress;


    @TableField("longitude")
    private BigDecimal longitude;

    @TableField("latitude")
    private BigDecimal latitude;

    @TableField("attitude_head")
    private Double attitudeHead;

    @TableField("flight_id")
    private String flightId;

    @TableField("flight_status")
    private Integer flightStatus;
    @TableField("height")
    private Double height;

    /**
     * 上一次保养状态 {"1":"飞行器基础保养","2":"飞行器常规保养","3":"飞行器深度保养"，0 ："未保养"}
     */
    @TableField("last_maintain_type")
    private Integer lastMaintainType;

    /**
     * {"0":"无保养","1":"有保养"}
     */
    @TableField("maintain_state")
    private Integer maintainState;

    /**
     * 上一次保养时间
     */
    @TableField("last_maintain_time")
    private Long lastMaintainTime;

    /**
     * 上一次保养时飞行架次
     */
    @TableField("last_maintain_flight_sorties")
    private Integer lastMaintainFlightSorties;
    /**
     * 上一次保养时飞行航时
     */
    @TableField("last_maintain_flight_time")
    private Long lastMaintainFlightTime;


    /**
     * 飞行器电池保养信息	{"0":"无需保养","1":"待保养","2":"正在保养"}
     */
    @TableField("drone_battery_maintenance_state")
    private Integer droneBatteryMaintenanceState;

    /**
     * 电池保养剩余时间
     */
    @TableField("drone_battery_maintenance_time_left")
    private Long droneBatteryMaintenanceTimeLeft;
    /**
     * 固件升级状态
     */
    @TableField("firmware_upgrade_status")
    private Integer firmwareUpgradeStatus;

    /**
     * 固件版本
     */
    @TableField("firmware_version")
    private String firmwareVersion;

    /**
     *
     */
    @TableField("model_id")
    private Long modelId;
}
